// src/utils/time.ts
import dayjs from 'dayjs'
import relativeTime from 'dayjs/plugin/relativeTime'
import 'dayjs/locale/zh-cn'

// 配置 dayjs
dayjs.extend(relativeTime)
dayjs.locale('zh-cn')

export function formatRelativeTime(date: string | number | Date) {
    const now = dayjs()
    const target = dayjs(date)
    
    // 计算时间差（分钟）
    const diffMinutes = now.diff(target, 'minute')
    
    if (diffMinutes < 60) {
        // 一小时内
        return diffMinutes <= 0 ? '刚刚' : `${diffMinutes}分钟前`
    } else if (diffMinutes < 1440) {
        // 24小时内
        const hours = Math.floor(diffMinutes / 60)
        return `${hours}小时前`
    } else {
        // 超过24小时，按天数计算
        const diff = now.diff(target, 'day')
        if (diff < 7) {
            // 一周内
            return `${diff}天前`
        } else if (diff < 30) {
            // 一个月内
            return `${Math.floor(diff / 7)}周前`
        } else if (diff < 365) {
            // 一年内
            return `${Math.floor(diff / 30)}个月前`
        } else {
            // 超过一年
            return target.format('YYYY-MM-DD')
        }
    }
}